//
//  CJCRCModel.swift
//  CJPack
//
//  Created by 陈警卫 on 2025/7/10.
//

import Foundation

// https://crccalc.com/

@objc public enum CJCRC8Type: Int {
    case autosar
    case bluetooth
    case cdma2000
    case darc
    case dvbS2
    case gsmA
    case gsmB
    case hitag
    case i432_1 // itu
    case iCode
    case lte
    case maximDow
    case mifareMad
    case nrsc5
    case opensafety
    case rohc
    case saeJ1850
    case smbus
    case tech3250 // aes/ebu
    case wcdma
}

@objc public enum CJCRC16Type: Int {
    case arc // lha/ibm
    case cdma2000
    case cms
    case dds110
    case dectR // r
    case dectX // x
    case dnp
    case en13757
    case genibus // darc/epc/epcC1g2/iCode
    case gsm
    case ibm3740 // autosar/ccittFalse
    case ibmSdlc // isoHdlc/isoIec144433B/x25/b
    case isoIec144433A // a
    case kermit // bluetooth/ccitt/ccittTrue/v41Lsb/kermit
    case lj1200
    case m17
    case maximDow // maxim
    case mcrf4xx
    case modbus
    case nrsc5
    case opensafetyA
    case opensafetyB
    case profibus // iec611582
    case riello
    case spiFujitsu // augCcitt
    case t10Dif
    case teledisk
    case tms37157
    case umts // buypass/verifone
    case usb
    case xmodem // acorn/lte/v41msb/zmodem
}

@objc public enum CJCRC32Type: Int {
    case aixm // 32q
    case autosar
    case base91D // 32D
    case bzip2 // aals/dectB/b
    case cdRomEdc
    case cksum // posix
    case iscsi // base91C/castagnoli/interlaken/c
    case isoHdlc // addccp/v42/xz/pkzip
    case jamcrc
    case mef
    case mpeg2
    case xfer
    case sata
}
